Databases are used in many business applications to store large quantities of data, which is often provided at high velocity and great variety. Different database schemas have different ways of storing and processing these data in the form of artifacts like tables, views, functions, and stored procedures. Client applications access a database to perform various processing tasks utilizing data stored at the database, such as, for example, providing user interfaces (UIs), providing various business services, etc. To access data at a database, client applications can access a database directly using a Structured Query Language (SQL). Accessing a database in this way, however, generally has the client application account for details of the database schema and artifacts including the name and content of different artifacts and the relational integrity of the tables. This adds complexity to client applications and reduces client application flexibility.